package com.mastercard.assets.web.util.to;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.mastercard.assets.jpa.TblForma;
import com.mastercard.assets.jpa.TblFormaSalida;
import com.mastercard.assets.jpa.TblTarea;
import com.mastercard.assets.jpa.TblTareaFlujo;

public class FormaSalidaTO
	implements
		Serializable
{
	private TblFormaSalida salida ;
	private List< TblTarea > tareas ; 
	private List< FormaParaSalidaTO > formaParaSalidas = new ArrayList< FormaParaSalidaTO >( ) ; 
	
	public FormaSalidaTO( TblFormaSalida salida , List< TblTarea > tareas )
	{
		this.salida = salida ;
		this.tareas = tareas ;
	}
	
	public void initialize( )
	{
		if( salida == null )
			return ;
		
		if( tareas == null || tareas.size( ) == 0 )
			return ;
		
		// toma las formas ya seleccionadas
		List< TblTareaFlujo > tareasFlujo = salida.getTblTareaFlujos( ) ;
		
		// recorre las formas
		for( TblTarea f : tareas )
		{
			// verifica si esta forma se encuentra dentro de las elegidas
			boolean elegida = false ;
			
			// recorre las tarea_flujo
			for( TblTareaFlujo tf : tareasFlujo )
			{
				// en caso deq ue coincidan
				if( f.getCveTarea( ) == tf.getTblTarea2( ).getCveTarea( ) )
				{
					elegida = true ;
					
					break ;
				}
			}
			
			// crea la formaparasalida
			FormaParaSalidaTO fpsto = new FormaParaSalidaTO( f , elegida ) ;
			
			// agrega
			this.formaParaSalidas.add( fpsto ) ;
		}
	}

	public TblFormaSalida getSalida() {
		return salida;
	}

	public List<FormaParaSalidaTO> getFormaParaSalidas() {
		return formaParaSalidas;
	}
}
